﻿using System.Collections.Generic;
using Headsight.BPMN2WF.BPMN.Schemas;

namespace Headsight.BPMN2WF.BPMN.Model
{
    /// <summary>
    /// Factory for constructing <see cref="BPMNFlowNode"/> instances for the passed in <see cref="tProcess"/>.
    /// </summary>
    public abstract class BPMNFlowNodeFactory
    {
        /// <summary>
        /// Creates and returns <see cref="BPMNFlowNode"/> instances for the passed in <see cref="tProcess"/> <para>tProcess</para>
        /// describing the <para>tProcess</para>'s <i>BPMN flow nodes</i>.
        /// </summary>
        public abstract IList<BPMNFlowNode> CreateBPMNFlowNodes(tProcess tProcess, IList<BPMNSequenceFlow> bpmnSequenceFlows, BPMNProcessFactoryParams bpmnModelFactoryParams);
    }
}